Vibro-haptic transducers, for example linear resonant actuators (LRAs), are widely used in portable devices such as mobile phones to generate vibrational feedback to a user. Vibro-haptic feedback in various forms creates different feelings of touch to a user's skin, and may play increasing roles in human-machine interactions for modern devices.
An LRA may be modelled as a mass-spring electro-mechanical vibration system. When driven with appropriately designed or controlled driving signals, an LRA may generate certain desired forms of vibrations. For example, a sharp and clear-cut vibration pattern on a user's finger may be used to create a sensation that mimics a mechanical button click. This clear-cut vibration may then be used as a virtual switch to replace mechanical buttons.
FIG. 1 illustrates an example of a vibro-haptic system in a device 100. Device 100 may comprise a controller 101 configured to control a signal applied to an amplifier 102. Amplifier 102 may then drive a haptic transducer 103 based on the signal. Controller 101 may be triggered by a trigger to output to the signal. The trigger may for example comprise a pressure or force sensor on a screen or virtual button of device 100.
Among the various forms of vibro-haptic feedback, tonal vibrations of sustained duration may play an important role to notify the user of the device of certain predefined events, such as incoming calls or messages, emergency alerts, and timer warnings, etc. In order to generate tonal vibration notifications efficiently, it may be desirable to operate the haptic actuator at its resonance frequency.
The resonance frequency f0 of a haptic transducer may be approximately estimated as:
                              f          0                =                  1                      2            ⁢            π            ⁢                                          C                ⁢                M                                                                        (        1        )            where C is the compliance of the spring system, and M is the equivalent moving mass, which may be determined based on both the actual moving part in the haptic transducer and the mass of the portable device holding the haptic transducer.
Due to sample-to-sample variations in individual haptic transducers, mobile device assembly variations, temporal component changes caused by aging, and use conditions such as various different strengths of a user gripping of the device, the vibration resonance of the haptic transducer may vary from time to time.
FIG. 2 illustrates an example of a linear resonant actuator (LRA) modelled as a linear system. LRAs are non-linear components that may behave differently depending on, for example, the voltage levels applied, the operating temperature, and the frequency of operation. However, these components may be modelled as linear components within certain conditions. In this example, the LRA is modelled as a third order system having electrical and mechanical elements. In particular, Re and Le are the DC resistance and coil inductance of the coil-magnet system, respectively; and Bl is the magnetic force factor of the coil. The driving amplifier outputs the voltage waveform V(t) with the output impedance Ro. The terminal voltage VT(t) may be sensed across the terminals of the haptic transducer. The mass-spring system 201 moves with velocity u(t).
In a system having an electromagnetic load such as an LRA, it may be desirable to determine the parameters that define an impedance of the electromagnetic load. Knowledge of such parameters may allow for optimization of playback of signals (e.g., playback of haptic waveforms) to the electromagnetic load. In addition, determination of electromagnetic load impedance may be valuable as it may allow for adapting of a playback signal to allow the playback signal to track changing parameters of the electromagnetic load.
An electromagnetic load such as an LRA may be characterized by its impedance ZLra as seen as the sum of a coil impedance Zcoil and a mechanical impedance Zmech:ZLra=Zcoil+Zmech  (2)
Coil impedance Zcoil may in turn comprise a direct current (DC) resistance Re in series with an inductance Le:Zcoil=Re+sLe  (3)
Mechanical impedance Zmech may be defined by three parameters including a resistance at resonance RES, an angular resonant frequency ω0 (e.g., ω0=2πf0), and a quality factor q. Or equivalently, mechanical impedance Zmech may be defined by three parameters including the resistance at resonance RES, a capacitance CMES representing an electrical capacitance representative of an equivalent moving mass M of the spring system of haptic transducer, and inductance LCES representative of a compliance C of the spring system. The relationship among these quantities may be given by the following equations, in which s is the Laplace transform variable:
                              Z                      m            ⁢            e            ⁢            c            ⁢            h                          =                              R                          E              ⁢                                                          ⁢              S                                ⁢                                                    1                                  q                  ⁢                                                                          ⁢                                      ω                    0                                                              ⁢              s                                      1              +                                                1                                      q                    ⁢                                                                                  ⁢                                          ω                      0                                                                      ⁢                s                            +                                                1                                      q                    ⁢                                                                                  ⁢                                          ω                      0                                                                      ⁢                                  s                  2                                                                                        (        4        )                                q        =                                                            R                                  E                  ⁢                  S                                                                              (                                      B                    ⁢                    l                                    )                                2                                      ⁢                                          (                                  M                  C                                )                                            1                2                                              =                                                    R                ⁢                                                                                              E                ⁢                                                                  ⁢                S                                      ⁢                                          (                                                      C                                          M                      ⁢                      E                      ⁢                      S                                                                            L                                          C                      ⁢                      E                      ⁢                      S                                                                      )                                            1                2                                                                        (        5        )                                          ω          0                =                  1                                                    C                                  M                  ⁢                  E                  ⁢                  S                                            ⁢                              L                                  C                  ⁢                  E                  ⁢                  S                                                                                        (        6        )            
Traditional approaches for driving an LRA at resonance rely on detecting a time difference between zero crossings of the LRA's back electromotive force (back-EMF) and the load current or voltage. Such difference may then be used to adjust a period of a signal driven to the LRA. One disadvantage of this approach is its sensitivity to noise because all of the noise power is essentially aliased by an effective sampling rate at approximately two times the resonance frequency. Such approach may also suffer from slow convergence if a loop filter is used to reduce sensitivity to noise, because as a rule of thumb, bandwidth of the loop filter should be one-tenth of the effective sampling rate (or less). Further, using such approaches and LRA may be tri-stated at zero crossing events in order to allow a reading of back-EMF, which may result in a loss of drive duty cycle (e.g., maximum power from a driving amplifier may not be delivered to the LRA).
Existing approaches to determining a complex impedance may include using broadband noise to excite a system having an electromagnetic load. For example, using existing approaches, a Fast Fourier Transform of current and voltage waveforms associated with the electromagnetic load may be performed to determine impedance.